﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BUS;
using DTO;
using System.Threading;

namespace GUI
{
    public partial class usAcQuy : UserControl
    {
        public usAcQuy()
        {
            InitializeComponent();
        }

        private void TrangThai(bool status)
        {
            //Trạng Thái số giờ nắng
            tsThem.Enabled = status;
            tsLoaiAcQuy.Enabled = status;
            tshuy.Enabled = !status;

        }
        private void tsThem_Click(object sender, EventArgs e)
        {
            reset();
            strMaHienTai = "";
            TenAcQuy = "";
            pnThongtin.Visible = true;
            btnThem.Visible = true;
            btnsua.Visible = false;
            btnHuy.Enabled = true;
            txtma.Focus();
            TrangThai(false);
            pnSanPham.Visible = true;
            pnLoaiAcQuy.Visible = false;
           // tsLoaiAcQuy.Enabled = false;
        }
        string strMaHienTai;
      

        DataTable _dtAcQuy;
        private void LoadAcQuy()
        {
            SetupDataGridView(gvSanPham);
            AcQuyBus _aqBus = new AcQuyBus();
            _dtAcQuy = _aqBus.LoadAcQuy();
            gvSanPham.DataSource = _dtAcQuy;

        }

        private void Loai_AcQuy()
        {
            AcQuyBus _aq = new AcQuyBus();
            DataTable dt = _aq.Loai_AcQuy();
            cbbloai.DisplayMember = "TenLoai";
            cbbloai.ValueMember = "MaLoai";
            cbbloai.DataSource = dt;

        }


        private bool kiemtrarong()
        {
            if (string.IsNullOrEmpty(txtten.Text) || string.IsNullOrEmpty(txtCS.Text))
            {
                MessageBox.Show("Nhập đầy đủ thông tin các trường có dấu (*)", "Thông Báo!!");
                return false;
            }
            else
                return true;
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            try
            {
                if (kiemtrarong())
                {
                    ThongSoChungDTO _ts = new ThongSoChungDTO();
                    AcQuyBus _tsBUS = new AcQuyBus();
                    _ts.MATB = txtma.Text;
                    _ts.TENTB = txtten.Text;
                    //_ts.MATS = 1;
                    _ts.NGAYNHAP = Convert.ToDateTime(dpngaynhap.Text);
                    _ts.CSKHADUNG = Decimal.Parse(txtCS.Text);
                    if (string.IsNullOrEmpty(txtGia.Text))
                        _ts.DONGIA = 0;
                    else
                        _ts.DONGIA = int.Parse(txtGia.Text);
                    ThietBiDienDTO _tb = new ThietBiDienDTO();

                    _tb.VOL = 0;
                    _tb.AMP = 0;

                    _tb.LOAITB = int.Parse(cbbloai.SelectedValue.ToString());


                    _tsBUS.Them_AcQuy(_ts, _tb);

                    reset();
                    LoadAcQuy();
                    txtma.Focus();
                    strMaHienTai = "";
                    TenAcQuy = "";
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Sai Cứu Pháp!!");
            }

        }

        private void reset()
        {
            txtten.Text = "";
            dpngaynhap.Text = (DateTime.Now).ToString();
           // txtamp.Text = "";
            txtCS.Text = "";
            txtma.Text = "";
            //txtvol.Text = "";
            txtGia.Text = "";
        }

        private void txtvol_TextChanged(object sender, EventArgs e)
        {
            //if (txtvol.Text != "" && txtamp.Text != "")
            //{
            //    txtCS.Text = (float.Parse(txtvol.Text) * float.Parse(txtamp.Text)).ToString();
            //}
        }

        private void txtamp_TextChanged(object sender, EventArgs e)
        {
            //if (txtvol.Text != "" && txtamp.Text != "")
            //{
            //    txtCS.Text = (float.Parse(txtvol.Text) * float.Parse(txtamp.Text)).ToString();
            //}
        }

        private void btnsua_Click(object sender, EventArgs e)
        {
            try
            {
                if (kiemtrarong())
                {
                    sua();
                    btnsua.Visible = false;
                    //pnThongtin.Visible = false;
                    btnThem.Visible = true;
                    TrangThai(true);
                    btnHuy.Enabled = true;
                    strMaHienTai = "";
                    TenAcQuy = "";
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Sai Cứu Pháp!!");
            }
            
        }


        private void sua()
        {
            ThongSoChungDTO _ts = new ThongSoChungDTO();
            AcQuyBus _tsBUS = new AcQuyBus();
            _ts.MATB = txtma.Text;
            _ts.TENTB = txtten.Text;
            _ts.NGAYNHAP = Convert.ToDateTime(dpngaynhap.Text);
            _ts.CSKHADUNG = Decimal.Parse(txtCS.Text);
            if(string.IsNullOrEmpty(txtGia.Text))
                _ts.DONGIA = 0;
            else
                _ts.DONGIA = int.Parse(txtGia.Text);

            ThietBiDienDTO _tb = new ThietBiDienDTO();
            _tb.STT = iSTT;
            //double zx = double.Parse(txtvol.Text);
            _tb.VOL = 0;
            _tb.AMP = 0;
            _tb.LOAITB = int.Parse(cbbloai.SelectedValue.ToString());

            _tsBUS.Sua_AcQuy(_ts, _tb);

            reset();

            LoadAcQuy();

        }



        private void gvSanPham_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Delete)
            {
                if (MessageBox.Show("Bạn có chắc muốn xóa !", "Thông Báo", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {

                    AcQuyBus _msBus = new AcQuyBus();
                    int sTT = int.Parse(gvSanPham.CurrentRow.Cells["STT"].Value.ToString());

                    _msBus.Xoa_AcQuy(sTT);



                    LoadAcQuy();


                }
            }
        }


        int iSua = 0;
        int iSTT;
        private void gvSanPham_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            btnHuy.Enabled = false;
            int rowIndex = e.RowIndex;
            if (rowIndex >= 0)
            {
                tshuy.Enabled = true;
                btnHuy.Enabled = false;
                btnThem.Visible = false;
                btnsua.Visible = true;
                pnThongtin.Visible = true;
                //iSua = 1;


                DataGridViewRow row = gvSanPham.Rows[rowIndex];
                iSTT = int.Parse(row.Cells["STT"].Value.ToString());
                strMaHienTai = row.Cells["MaTB"].Value.ToString().Trim();
                TenAcQuy = row.Cells["TenTB"].Value.ToString();
                txtten.Text = row.Cells["TenTB"].Value.ToString();
                dpngaynhap.Text = row.Cells["NgayNhap"].Value.ToString();
               // txtamp.Text = row.Cells["Amp"].Value.ToString();
                txtCS.Text = row.Cells["CSKhaDung"].Value.ToString();
                txtma.Text = row.Cells["MaTB"].Value.ToString().Trim();
               // txtvol.Text = row.Cells["Vol"].Value.ToString();
                txtGia.Text = row.Cells["DonGia"].Value.ToString();
                cbbloai.SelectedValue = row.Cells["MaLoai"].Value;
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            strMaHienTai = "";
            TenAcQuy = "";
            reset();
        }

        private void btnDong_Click(object sender, EventArgs e)
        {
            reset();
            pnThongtin.Visible = false;
            TrangThai(true);
            pnSanPham.Visible = true;
            TrangThai_LoaiMoi(true);
            strMaHienTai = "";
            TenAcQuy = "";
            
        }

        private void tshuy_Click(object sender, EventArgs e)
        {
            pnThongtin.Visible = false;
            pnLoaiAcQuy.Visible = false;
            TrangThai(true);
            pnSanPham.Visible = true;
            TrangThai_LoaiMoi(true);
            strMaHienTai = "";
            TenAcQuy = "";
        }

        private void txt_KeyPress(object sender, KeyPressEventArgs e)
        {
           //if (e.KeyChar != ',' && e.KeyChar != '.' && e.KeyChar != (char)46 && e.KeyChar != (char)8)
           // {
           //     if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), "\\d+"))
           //     {
           //         e.Handled = true;
                    
           //     }
           // }

            string decimalString = Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalSeparator;
            char decimalChar = Convert.ToChar(decimalString);
            TextBox a = sender as TextBox;
            if (Char.IsDigit(e.KeyChar) || Char.IsControl(e.KeyChar)) { }
            else if (e.KeyChar == decimalChar && a.Text.IndexOf(decimalString) == -1)
            { }
            else
            {
                e.Handled = true;
            }
        }

        private void SetupDataGridView(DataGridView gv)
        {
            DataGridViewCellStyle style = gv.ColumnHeadersDefaultCellStyle;
            style.BackColor = Color.Navy;
            style.ForeColor = Color.White;
            style.Font = new Font(gv.Font, FontStyle.Bold);


            gv.GridColor = Color.Blue;  //' Màu các của lưới
            gv.BackgroundColor = Color.AliceBlue; //' Màu nền gridview
            gv.ForeColor = Color.Green; //' Màu chữ
            //' Thiết lập màu chữ cho những dòng có chỉ số lẻ
            gv.AlternatingRowsDefaultCellStyle.ForeColor = Color.Purple;
        }

        private void txtma_Leave(object sender, EventArgs e)
        {
            if (txtma.Text != "")
            {
                if (txtma.Text != strMaHienTai)
                {
                    ThongSoChungDTO _ts = new ThongSoChungDTO();
                    _ts.MATB = txtma.Text;
                    AcQuyBus _tsBUS = new AcQuyBus();
                    int dt = _tsBUS.KiemTra_MaAQ(_ts);
                    if (dt == 1)
                    {
                        txtma.Text = strMaHienTai;
                        MessageBox.Show("Thiết Bị Đã Tồn Tại, Bạn Có Thể Cập Nhật Lại Thiết Bị", "Thông Báo!");
                        txtma.Focus();
                    }
                }

            }

        }

        private void usAcQuy_Load(object sender, EventArgs e)
        {
            LoadAcQuy();
            Loai_AcQuy();
            //Load_cbbLoai();
            
            TrangThai(true);
        }

        private void gvSanPham_CellClick(object sender, DataGridViewCellEventArgs e)
        {
           
        }

        private void button1_Click(object sender, EventArgs e)
        {

        }

        private void btnSuaLoai_Click(object sender, EventArgs e)
        {

        }
        int MaLoai_Sua;
        private void gvLoaiAcQuy_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            btnHuy.Enabled = false;
            int rowIndex = e.RowIndex;
            if (rowIndex >= 0)
            {
                btnThemLoai.Visible = false;
                btnSuaLoai.Visible = true;

                DataGridViewRow row = gvLoaiAcQuy.Rows[rowIndex];
                MaLoai_Sua = int.Parse(row.Cells["MaLoaiAcQuy"].Value.ToString());
                TenAcQuyHienTai =  row.Cells["TenLoai"].Value.ToString().Trim();
                txtLoaiAcQuy.Text = row.Cells["TenLoai"].Value.ToString().Trim();
            }
        }

        private void tsLoaiAcQuy_Click(object sender, EventArgs e)
        {
            btnThemLoai.Visible = true;
            btnSuaLoai.Visible = false;
            //tsThem.Visible = true;
            //SetupDataGridView(gvLoaiAcQuy);
            TenAcQuyHienTai = "";
            pnLoaiAcQuy.Visible = true;
            pnSanPham.Visible = false;
            Hienthi_LoaiAcQuy();
            pnThongtin.Visible = false;
            TrangThai(false);
            pnLoaiAcQuy.Dock = DockStyle.Fill;
            pnnutbanLoai.Dock = DockStyle.None;
            pnnutbanLoai.Anchor = AnchorStyles.Top;
            txtLoaiAcQuy.Text = "";
            strMaHienTai = "";
            TenAcQuy = "";
             //TrangThai_LoaiMoi(false);
           

        }

        private void Hienthi_LoaiAcQuy()
        {
            SetupDataGridView(gvLoaiAcQuy);
            DataTable _dt;
            AcQuyBus _acBus = new AcQuyBus();
            _dt = _acBus.Load_LoaiAcQuy();
            gvLoaiAcQuy.DataSource = _dt;
        }

        private void btnHuyLoai_Click(object sender, EventArgs e)
        {
            strMaHienTai = "";
            TenAcQuy = "";
            pnLoaiAcQuy.Visible = false;
            pnSanPham.Visible = true;
            txtLoaiAcQuy.Text = "";
            //tsThem.Visible = true;
            

            TrangThai(true);
            TrangThai_LoaiMoi(true);
            if (iSua == 1)
            {
                cbbloai.SelectedValue = maLoaiVuaThem;
                txtCS.Focus();
            }
        }
        int maLoaiVuaThem;
        private void btnThemLoai_Click(object sender, EventArgs e)
        {
            try
            {
                if (string.IsNullOrEmpty(txtLoaiAcQuy.Text))
                {
                    MessageBox.Show("Nhập đầy đủ thông tin!!", "Thông Báo!!");
                    txtLoaiAcQuy.Focus();
                }
                else
                {
                    LoaiAcQuy _laq = new LoaiAcQuy();
                    _laq.TenLoai = txtLoaiAcQuy.Text;

                    AcQuyBus _acBus = new AcQuyBus();
                    maLoaiVuaThem = _acBus.Them_LoaiAcQuy(_laq);
                    txtLoaiAcQuy.Text = "";
                    Loai_AcQuy();
                    Hienthi_LoaiAcQuy();
                    iSua = 1;
                    txtLoaiAcQuy.Focus();
                    strMaHienTai = "";
                    TenAcQuy = "";
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Sai Cứu Pháp!!");
            }
        }

        private List<LoaiAcQuy> Load_LoaiPin()
        {
            AcQuyBus _aqBus = new AcQuyBus();
            return _aqBus.LoadLoaiCQuy_Them1dong();
        }
        private void Load_cbbLoai()
        {
            LoaiAcQuy _lAQ = new LoaiAcQuy();

            for (int i = 0; i < Load_LoaiPin().Count; i++)
            {
                cbbloai.Items.Add(Load_LoaiPin()[i]);
            }
            cbbloai.Items.Add("--Mới--");
            cbbloai.DisplayMember = "TenLoai";
            cbbloai.SelectedIndex = 0;
         

        }

        private void cbbloai_SelectedIndexChanged(object sender, EventArgs e)
        {
        //    if (cbbloai.Text.ToString() == "--Mới--")
        //    {
        //        Hienthi_LoaiAcQuy();
        //        TrangThai_LoaiMoi(false);
        //        cbbloai.Items.Clear();
        //        Load_cbbLoai();
        //    }
        }
        private void TrangThai_LoaiMoi(bool status)
        {
            pnSanPham.Enabled = status;
            pnThongtin.Enabled = status;
            pnLoaiAcQuy.Visible = !status;
        }

        private void btnLoaiMoi_Click(object sender, EventArgs e)
        {
            strMaHienTai = "";
            TenAcQuy = "";
            txtLoaiAcQuy.Text = "";
            btnThemLoai.Visible = true;
            btnSuaLoai.Visible = false;
            TenAcQuyHienTai = "";
            TrangThai_LoaiMoi(false);
            Hienthi_LoaiAcQuy();
            txtLoaiAcQuy.Focus();
            pnLoaiAcQuy.Dock = DockStyle.Top;
            pnnutbanLoai.Dock = DockStyle.Bottom;
        }
        string TenAcQuyHienTai;
        private void txtLoaiAcQuy_Leave(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtLoaiAcQuy.Text))
            {
                if ((txtLoaiAcQuy.Text).ToLower() != TenAcQuyHienTai.ToLower())
                {
                    LoaiAcQuy _lAQ = new LoaiAcQuy();
                    _lAQ.TenLoai = txtLoaiAcQuy.Text;
                    AcQuyBus _aqBus = new AcQuyBus();
                    int dt = _aqBus.KiemTra_TenAcQuy(_lAQ);
                    if (dt == 1)
                    {
                        txtLoaiAcQuy.Text = TenAcQuyHienTai;
                        MessageBox.Show("Thiết Bị Đã Tồn Tại, Bạn Có Thể Cập Nhật Lại Thiết Bị", "Thông Báo!");
                        txtLoaiAcQuy.Focus();
                    }
                }

            }
        }

        private void btnSuaLoai_Click_1(object sender, EventArgs e)
        {
            try
            {
                if (string.IsNullOrEmpty(txtLoaiAcQuy.Text))
                {
                    MessageBox.Show("Nhập đầy đủ thông tin!!", "Thông Báo!!");
                    txtLoaiAcQuy.Focus();
                }
                else
                {
                    LoaiAcQuy _lAQ = new LoaiAcQuy();
                    AcQuyBus _aqBus = new AcQuyBus();

                    _lAQ.MaLoaiAcQuy = MaLoai_Sua;
                    _lAQ.TenLoai = txtLoaiAcQuy.Text;

                    _aqBus.Sua_LoaiAcQuy(_lAQ);

                    txtLoaiAcQuy.Text = "";
                    Hienthi_LoaiAcQuy();
                    strMaHienTai = "";
                    TenAcQuy = "";

                }
            }
            catch (Exception)
            {
                MessageBox.Show("Sai Cứu Pháp!!");
            }
        }

        private void gvLoaiAcQuy_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Delete)
            {
                if (MessageBox.Show("Nếu Bạn Xoá Loại Ắc Quy [" + gvLoaiAcQuy.CurrentRow.Cells["TenLoai"].Value.ToString() + "] Này Thì Các Sản Phẩm Ắc Quy Thuộc Loại Này Sẻ Bị Xoá !", "Bạn Thật Sự Muốn Xoá?", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    LoaiAcQuy _lAQ = new LoaiAcQuy();
                    AcQuyBus _msBus = new AcQuyBus();
                    _lAQ.MaLoaiAcQuy = int.Parse(gvLoaiAcQuy.CurrentRow.Cells["MaLoaiAcQuy"].Value.ToString());

                    _msBus.Xoa_LoaiAcQuy(_lAQ);
                    Hienthi_LoaiAcQuy();
                    LoadAcQuy();

                    


                }
            }
        }

        string TenAcQuy="";
        private void txtten_Leave(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtten.Text))
            {
                if ((txtten.Text).ToLower() != TenAcQuy.ToLower())
                {
                    ThongSoChungDTO _ts = new ThongSoChungDTO();
                    _ts.TENTB = txtten.Text;
                    AcQuyBus _aqBus = new AcQuyBus();
                    int dt = _aqBus.KT_TheoTenAcQuy(_ts);
                    if (dt == 1)
                    {
                        txtten.Text = TenAcQuy;
                        MessageBox.Show("Thiết Bị Đã Tồn Tại, Bạn Có Thể Cập Nhật Lại Thiết Bị", "Thông Báo!");
                        txtten.Focus();
                    }
                }

            }
        }
    }
}
